// P4956 write by cn_ryh